來到了第二天開始動手寫程式,凡事起頭難,今天來用簡單的方式讓程式動起來,選用Java原生提供的輸出API,System.out.println進行操作,順便介紹基本的程式執行觀念
先上簡單的程式碼來執行
public class day2 {
public static void main(String[] args) {
System.out.println("Hell World");
}
}
對程式有概念的人,會很直覺的解讀這段程式碼,執行打印Hello World 文字的操作,但更進一步的解讀是,執行 day2.java類別時,會直接運行「public static void main」的靜態方法。
Java程式運行都是從指定類別的靜態 main方法開使執行,可以將 main方法做為整個應用程式的進入點,前面示範了打印字串的操作,現在來將內容改為打印數字操作
// 修改 public static void main 內容如下
int age = 24; // 定義數字變數 age
System.out.println(age); // output: 24
System.out.println(age++); // output: 24
System.out.println(++age); // output: 26
System.out.println("My Age is : " + age); output: 26
程式在執行時先宣告了age變數 24,接著分別打印 age, age++, ++age 最後是與 My Age is : 字串合成的文字輸出,這段程式要表明的重點是,程式運行會因為「陳述方式」不同,而影響到實際執行方式,現在來解讀程式碼
System.out.print(age)
很單純就只是打印了 age 變數
System.out.print(age++)
做的事情是先打印 age變數在將值 +1
System.out.print(++age)
++方向相反所以執行順序也相反,先將 age變數+1在打印age實際值
System.out.print("My Age is : " + age)
這段的執行是先建立字串 "My Age is : ",在取得age數值將其轉成字串,將兩組字串合併成一組字串,
最後在使用 System.out.println 輸出實際值
介紹到這或許有人會想知道,明明陳述片段看起來很單純,為什麼解釋起來可以這麼複雜,實際上Java在運行時,並不會完全照開發者所寫的內容執行,會將.java檔案進行編譯,將內容轉換成Java指令集,此時的指令才是程式真正執行的步驟
在程式運行的背後隱藏著許多不會去注意的東西,如記憶體操作,或是Java在背後偷偷轉換實際值,雖然平常開發套用別人寫好的函式庫,就可以撰寫業務邏輯,事實上還是會有機會碰到要了解背後運作的一天,因此後面除了講解Java的常見操作,也會藉由範例說明JVM的運行機制